package me.ingxin.android.permission2.view

/**
 * Created on 2023/8/5 by yin
 * 引导视图view
 */
interface GuideView {

    /**
     * 流程继续回调，子类默认实现为null即可，
     * ```
     *  override var continueBlock: ((GuideView) -> Unit)? = null
     * ```
     */
    var continueBlock: ((GuideView) -> Unit)?

    /**
     * 流程结束回调，子类默认实现为null即可
     * ```
     *  override var interruptBlock: ((GuideView) -> Unit)? = null
     * ```
     */
    var interruptBlock: ((GuideView) -> Unit)?

    /**
     * 显示引导视图
     */
    fun applyShow()

    /**
     * 隐藏引导视图
     */
    fun applyDismiss()

    /**
     * 禁止可取消显示的属性（用户主动关闭引导视图会导致流程意外中断）
     */
    fun disableCancelable()

    /**
     * 通知继续执行权限申请
     */
    fun continueRun() {
        continueBlock?.invoke(this)
    }

    /**
     * 通知中断权限申请
     */
    fun interrupt() {
        interruptBlock?.invoke(this)
    }

}